/* BEGIN_LEGAL 

Copyright (c) 2021 Intel Corporation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  
END_LEGAL */
/// @file xed-attribute-enum.h

// This file was automatically generated.
// Do not edit this file.

#if !defined(XED_ATTRIBUTE_ENUM_H)
# define XED_ATTRIBUTE_ENUM_H
#include "xed-common-hdrs.h"
#define XED_ATTRIBUTE_INVALID_DEFINED 1
#define XED_ATTRIBUTE_AMDONLY_DEFINED 1
#define XED_ATTRIBUTE_ATT_OPERAND_ORDER_EXCEPTION_DEFINED 1
#define XED_ATTRIBUTE_BROADCAST_ENABLED_DEFINED 1
#define XED_ATTRIBUTE_BYTEOP_DEFINED 1
#define XED_ATTRIBUTE_DISP8_EIGHTHMEM_DEFINED 1
#define XED_ATTRIBUTE_DISP8_FULL_DEFINED 1
#define XED_ATTRIBUTE_DISP8_FULLMEM_DEFINED 1
#define XED_ATTRIBUTE_DISP8_GPR_READER_DEFINED 1
#define XED_ATTRIBUTE_DISP8_GPR_READER_BYTE_DEFINED 1
#define XED_ATTRIBUTE_DISP8_GPR_READER_WORD_DEFINED 1
#define XED_ATTRIBUTE_DISP8_GPR_WRITER_LDOP_D_DEFINED 1
#define XED_ATTRIBUTE_DISP8_GPR_WRITER_LDOP_Q_DEFINED 1
#define XED_ATTRIBUTE_DISP8_GPR_WRITER_STORE_DEFINED 1
#define XED_ATTRIBUTE_DISP8_GPR_WRITER_STORE_BYTE_DEFINED 1
#define XED_ATTRIBUTE_DISP8_GPR_WRITER_STORE_WORD_DEFINED 1
#define XED_ATTRIBUTE_DISP8_GSCAT_DEFINED 1
#define XED_ATTRIBUTE_DISP8_HALF_DEFINED 1
#define XED_ATTRIBUTE_DISP8_HALFMEM_DEFINED 1
#define XED_ATTRIBUTE_DISP8_MEM128_DEFINED 1
#define XED_ATTRIBUTE_DISP8_MOVDDUP_DEFINED 1
#define XED_ATTRIBUTE_DISP8_QUARTER_DEFINED 1
#define XED_ATTRIBUTE_DISP8_QUARTERMEM_DEFINED 1
#define XED_ATTRIBUTE_DISP8_SCALAR_DEFINED 1
#define XED_ATTRIBUTE_DISP8_TUPLE1_DEFINED 1
#define XED_ATTRIBUTE_DISP8_TUPLE1_4X_DEFINED 1
#define XED_ATTRIBUTE_DISP8_TUPLE1_BYTE_DEFINED 1
#define XED_ATTRIBUTE_DISP8_TUPLE1_WORD_DEFINED 1
#define XED_ATTRIBUTE_DISP8_TUPLE2_DEFINED 1
#define XED_ATTRIBUTE_DISP8_TUPLE4_DEFINED 1
#define XED_ATTRIBUTE_DISP8_TUPLE8_DEFINED 1
#define XED_ATTRIBUTE_DOUBLE_WIDE_MEMOP_DEFINED 1
#define XED_ATTRIBUTE_DOUBLE_WIDE_OUTPUT_DEFINED 1
#define XED_ATTRIBUTE_DWORD_INDICES_DEFINED 1
#define XED_ATTRIBUTE_ELEMENT_SIZE_D_DEFINED 1
#define XED_ATTRIBUTE_ELEMENT_SIZE_Q_DEFINED 1
#define XED_ATTRIBUTE_EXCEPTION_BR_DEFINED 1
#define XED_ATTRIBUTE_FAR_XFER_DEFINED 1
#define XED_ATTRIBUTE_FIXED_BASE0_DEFINED 1
#define XED_ATTRIBUTE_FIXED_BASE1_DEFINED 1
#define XED_ATTRIBUTE_GATHER_DEFINED 1
#define XED_ATTRIBUTE_HALF_WIDE_OUTPUT_DEFINED 1
#define XED_ATTRIBUTE_HLE_ACQ_ABLE_DEFINED 1
#define XED_ATTRIBUTE_HLE_REL_ABLE_DEFINED 1
#define XED_ATTRIBUTE_IGNORES_OSFXSR_DEFINED 1
#define XED_ATTRIBUTE_IMPLICIT_ONE_DEFINED 1
#define XED_ATTRIBUTE_INDEX_REG_IS_POINTER_DEFINED 1
#define XED_ATTRIBUTE_INDIRECT_BRANCH_DEFINED 1
#define XED_ATTRIBUTE_KMASK_DEFINED 1
#define XED_ATTRIBUTE_LOCKABLE_DEFINED 1
#define XED_ATTRIBUTE_LOCKED_DEFINED 1
#define XED_ATTRIBUTE_MASKOP_DEFINED 1
#define XED_ATTRIBUTE_MASKOP_EVEX_DEFINED 1
#define XED_ATTRIBUTE_MASK_AS_CONTROL_DEFINED 1
#define XED_ATTRIBUTE_MASK_VARIABLE_MEMOP_DEFINED 1
#define XED_ATTRIBUTE_MEMORY_FAULT_SUPPRESSION_DEFINED 1
#define XED_ATTRIBUTE_MMX_EXCEPT_DEFINED 1
#define XED_ATTRIBUTE_MPX_PREFIX_ABLE_DEFINED 1
#define XED_ATTRIBUTE_MULTIDEST2_DEFINED 1
#define XED_ATTRIBUTE_MULTISOURCE4_DEFINED 1
#define XED_ATTRIBUTE_MXCSR_DEFINED 1
#define XED_ATTRIBUTE_MXCSR_RD_DEFINED 1
#define XED_ATTRIBUTE_NONTEMPORAL_DEFINED 1
#define XED_ATTRIBUTE_NOP_DEFINED 1
#define XED_ATTRIBUTE_NOTSX_DEFINED 1
#define XED_ATTRIBUTE_NOTSX_COND_DEFINED 1
#define XED_ATTRIBUTE_NO_RIP_REL_DEFINED 1
#define XED_ATTRIBUTE_NO_SRC_DEST_MATCH_DEFINED 1
#define XED_ATTRIBUTE_PREFETCH_DEFINED 1
#define XED_ATTRIBUTE_PROTECTED_MODE_DEFINED 1
#define XED_ATTRIBUTE_QWORD_INDICES_DEFINED 1
#define XED_ATTRIBUTE_REP_DEFINED 1
#define XED_ATTRIBUTE_REQUIRES_ALIGNMENT_DEFINED 1
#define XED_ATTRIBUTE_RING0_DEFINED 1
#define XED_ATTRIBUTE_SCALABLE_DEFINED 1
#define XED_ATTRIBUTE_SCATTER_DEFINED 1
#define XED_ATTRIBUTE_SIMD_SCALAR_DEFINED 1
#define XED_ATTRIBUTE_SKIPLOW32_DEFINED 1
#define XED_ATTRIBUTE_SKIPLOW64_DEFINED 1
#define XED_ATTRIBUTE_SPECIAL_AGEN_REQUIRED_DEFINED 1
#define XED_ATTRIBUTE_STACKPOP0_DEFINED 1
#define XED_ATTRIBUTE_STACKPOP1_DEFINED 1
#define XED_ATTRIBUTE_STACKPUSH0_DEFINED 1
#define XED_ATTRIBUTE_STACKPUSH1_DEFINED 1
#define XED_ATTRIBUTE_USES_DAZ_DEFINED 1
#define XED_ATTRIBUTE_USES_FTZ_DEFINED 1
#define XED_ATTRIBUTE_X87_CONTROL_DEFINED 1
#define XED_ATTRIBUTE_X87_MMX_STATE_CW_DEFINED 1
#define XED_ATTRIBUTE_X87_MMX_STATE_R_DEFINED 1
#define XED_ATTRIBUTE_X87_MMX_STATE_W_DEFINED 1
#define XED_ATTRIBUTE_X87_NOWAIT_DEFINED 1
#define XED_ATTRIBUTE_XMM_STATE_CW_DEFINED 1
#define XED_ATTRIBUTE_XMM_STATE_R_DEFINED 1
#define XED_ATTRIBUTE_XMM_STATE_W_DEFINED 1
#define XED_ATTRIBUTE_LAST_DEFINED 1
typedef enum {
  XED_ATTRIBUTE_INVALID,
  XED_ATTRIBUTE_AMDONLY,
  XED_ATTRIBUTE_ATT_OPERAND_ORDER_EXCEPTION,
  XED_ATTRIBUTE_BROADCAST_ENABLED,
  XED_ATTRIBUTE_BYTEOP,
  XED_ATTRIBUTE_DISP8_EIGHTHMEM,
  XED_ATTRIBUTE_DISP8_FULL,
  XED_ATTRIBUTE_DISP8_FULLMEM,
  XED_ATTRIBUTE_DISP8_GPR_READER,
  XED_ATTRIBUTE_DISP8_GPR_READER_BYTE,
  XED_ATTRIBUTE_DISP8_GPR_READER_WORD,
  XED_ATTRIBUTE_DISP8_GPR_WRITER_LDOP_D,
  XED_ATTRIBUTE_DISP8_GPR_WRITER_LDOP_Q,
  XED_ATTRIBUTE_DISP8_GPR_WRITER_STORE,
  XED_ATTRIBUTE_DISP8_GPR_WRITER_STORE_BYTE,
  XED_ATTRIBUTE_DISP8_GPR_WRITER_STORE_WORD,
  XED_ATTRIBUTE_DISP8_GSCAT,
  XED_ATTRIBUTE_DISP8_HALF,
  XED_ATTRIBUTE_DISP8_HALFMEM,
  XED_ATTRIBUTE_DISP8_MEM128,
  XED_ATTRIBUTE_DISP8_MOVDDUP,
  XED_ATTRIBUTE_DISP8_QUARTER,
  XED_ATTRIBUTE_DISP8_QUARTERMEM,
  XED_ATTRIBUTE_DISP8_SCALAR,
  XED_ATTRIBUTE_DISP8_TUPLE1,
  XED_ATTRIBUTE_DISP8_TUPLE1_4X,
  XED_ATTRIBUTE_DISP8_TUPLE1_BYTE,
  XED_ATTRIBUTE_DISP8_TUPLE1_WORD,
  XED_ATTRIBUTE_DISP8_TUPLE2,
  XED_ATTRIBUTE_DISP8_TUPLE4,
  XED_ATTRIBUTE_DISP8_TUPLE8,
  XED_ATTRIBUTE_DOUBLE_WIDE_MEMOP,
  XED_ATTRIBUTE_DOUBLE_WIDE_OUTPUT,
  XED_ATTRIBUTE_DWORD_INDICES,
  XED_ATTRIBUTE_ELEMENT_SIZE_D,
  XED_ATTRIBUTE_ELEMENT_SIZE_Q,
  XED_ATTRIBUTE_EXCEPTION_BR,
  XED_ATTRIBUTE_FAR_XFER,
  XED_ATTRIBUTE_FIXED_BASE0,
  XED_ATTRIBUTE_FIXED_BASE1,
  XED_ATTRIBUTE_GATHER,
  XED_ATTRIBUTE_HALF_WIDE_OUTPUT,
  XED_ATTRIBUTE_HLE_ACQ_ABLE,
  XED_ATTRIBUTE_HLE_REL_ABLE,
  XED_ATTRIBUTE_IGNORES_OSFXSR,
  XED_ATTRIBUTE_IMPLICIT_ONE,
  XED_ATTRIBUTE_INDEX_REG_IS_POINTER,
  XED_ATTRIBUTE_INDIRECT_BRANCH,
  XED_ATTRIBUTE_KMASK,
  XED_ATTRIBUTE_LOCKABLE,
  XED_ATTRIBUTE_LOCKED,
  XED_ATTRIBUTE_MASKOP,
  XED_ATTRIBUTE_MASKOP_EVEX,
  XED_ATTRIBUTE_MASK_AS_CONTROL,
  XED_ATTRIBUTE_MASK_VARIABLE_MEMOP,
  XED_ATTRIBUTE_MEMORY_FAULT_SUPPRESSION,
  XED_ATTRIBUTE_MMX_EXCEPT,
  XED_ATTRIBUTE_MPX_PREFIX_ABLE,
  XED_ATTRIBUTE_MULTIDEST2,
  XED_ATTRIBUTE_MULTISOURCE4,
  XED_ATTRIBUTE_MXCSR,
  XED_ATTRIBUTE_MXCSR_RD,
  XED_ATTRIBUTE_NONTEMPORAL,
  XED_ATTRIBUTE_NOP,
  XED_ATTRIBUTE_NOTSX,
  XED_ATTRIBUTE_NOTSX_COND,
  XED_ATTRIBUTE_NO_RIP_REL,
  XED_ATTRIBUTE_NO_SRC_DEST_MATCH,
  XED_ATTRIBUTE_PREFETCH,
  XED_ATTRIBUTE_PROTECTED_MODE,
  XED_ATTRIBUTE_QWORD_INDICES,
  XED_ATTRIBUTE_REP,
  XED_ATTRIBUTE_REQUIRES_ALIGNMENT,
  XED_ATTRIBUTE_RING0,
  XED_ATTRIBUTE_SCALABLE,
  XED_ATTRIBUTE_SCATTER,
  XED_ATTRIBUTE_SIMD_SCALAR,
  XED_ATTRIBUTE_SKIPLOW32,
  XED_ATTRIBUTE_SKIPLOW64,
  XED_ATTRIBUTE_SPECIAL_AGEN_REQUIRED,
  XED_ATTRIBUTE_STACKPOP0,
  XED_ATTRIBUTE_STACKPOP1,
  XED_ATTRIBUTE_STACKPUSH0,
  XED_ATTRIBUTE_STACKPUSH1,
  XED_ATTRIBUTE_USES_DAZ,
  XED_ATTRIBUTE_USES_FTZ,
  XED_ATTRIBUTE_X87_CONTROL,
  XED_ATTRIBUTE_X87_MMX_STATE_CW,
  XED_ATTRIBUTE_X87_MMX_STATE_R,
  XED_ATTRIBUTE_X87_MMX_STATE_W,
  XED_ATTRIBUTE_X87_NOWAIT,
  XED_ATTRIBUTE_XMM_STATE_CW,
  XED_ATTRIBUTE_XMM_STATE_R,
  XED_ATTRIBUTE_XMM_STATE_W,
  XED_ATTRIBUTE_LAST
} xed_attribute_enum_t;

/// This converts strings to #xed_attribute_enum_t types.
/// @param s A C-string.
/// @return #xed_attribute_enum_t
/// @ingroup ENUM
XED_DLL_EXPORT xed_attribute_enum_t str2xed_attribute_enum_t(const char* s);
/// This converts strings to #xed_attribute_enum_t types.
/// @param p An enumeration element of type xed_attribute_enum_t.
/// @return string
/// @ingroup ENUM
XED_DLL_EXPORT const char* xed_attribute_enum_t2str(const xed_attribute_enum_t p);

/// Returns the last element of the enumeration
/// @return xed_attribute_enum_t The last element of the enumeration.
/// @ingroup ENUM
XED_DLL_EXPORT xed_attribute_enum_t xed_attribute_enum_t_last(void);
#endif
